package com.newbie.pet.constant;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 类描述：响应结果信息
 *
 * @author zhangkailiang
 * @date 2020/5/23
 */
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum ResultStatus {
    /**
     * 处理成功
     */
    SUCCESS(200, "成功"),
    /**
     * 参数异常,前端直接展示提示
     */
    ERROR_PARAM(400, "参数异常"),
    /**
     * 权限异常
     */
    ERROR_CHECK(403, "权限异常"),
    /**
     * 404异常
     */
    ERROR_URL(404, "请求地址错误"),
    /**
     * 信息失效
     */
    ERROR_INVALID(410, "信息失效"),
    /**
     * 系统异常
     */
    ERROR(500, "服务异常"),
    ;

    ResultStatusT t;

    ResultStatus(Integer status, String msg) {
        t = new ResultStatusT(status, msg);
    }

    /**
     * 设置状态信息
     *
     * @param msg
     * @return
     */
    public ResultStatusT setMsg(String msg) {
        return new ResultStatusT(this.t.getStatus(), msg);
    }

    /**
     * 设置状态码
     *
     * @param status
     * @return
     */
    public ResultStatusT setStatus(Integer status) {
        return new ResultStatusT(status, this.t.getMsg());
    }

    public Integer getStatus() {
        return this.t.getStatus();
    }

    public String getMsg() {
        return this.t.getMsg();
    }

    public ResultStatusT toT() {
        return this.t;
    }

    @Override
    public String toString() {
        return t.toString();
    }
}
